def luhn_check(number_str):
    """
    校验Luhn算法的有效性
    :param number_str: 待校验的号码字符串（可含空格/非数字字符）
    :return: True（有效）或False（无效）
    """
    # 清洗输入：保留数字，去除空格/非数字字符
    cleaned_num = ''.join(filter(str.isdigit, number_str))
    if not cleaned_num:
        return False  # 无效输入（全为非数字）

    # 反转字符串，从右往左处理
    reversed_num = cleaned_num[::-1]
    total_sum = 0

    for i, digit_char in enumerate(reversed_num):
        digit = int(digit_char)

        # 偶数位（从右往左的第2、4、6...位）乘以2
        if i % 2 == 1:
            digit *= 2
            # 若乘积≥10，拆分为个位+十位
            if digit >= 10:
                digit = digit // 10 + digit % 10

        total_sum += digit

    return total_sum % 10 == 0  # 总和能被10整除则为有效


if __name__ == "__main__":
    # 获取用户输入（支持单个或多个号码，用逗号分隔）
    input_numbers = input("请输入号码（单个或多个，用逗号分隔）：").strip()
    numbers_list = [num.strip() for num in input_numbers.split(',')]

    # 逐个校验并输出结果
    for num in numbers_list:
        is_valid = luhn_check(num)
        print(f"号码 {num} 的校验结果是：{'有效' if is_valid else '无效'}")
